package br.unicamp.ic.inf312.arena.testeunitario.persistencia.dao;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import br.unicamp.ic.inf312.arena.modelo.logistico.Evento;
import br.unicamp.ic.inf312.arena.persistencia.dao.IEventoDAO;
import br.unicamp.ic.inf312.arena.util.Util;
import br.unicamp.ic.inf312.framework.persistencia.DataAccessObjectFactory;
import br.unicamp.ic.inf312.framework.teste.DAOBaseTestCase;

public class EventoDAOMySQLTest extends DAOBaseTestCase {
	private static final String PERSISTENCIA_PROPERTIES = "br/unicamp/ic/inf312/persistencia.properties";

	private static IEventoDAO daoEvento = null;

	protected void setUp() throws Exception {
		super.setUp();
		DataAccessObjectFactory.getInstance(PERSISTENCIA_PROPERTIES);
		daoEvento = (IEventoDAO) DataAccessObjectFactory
				.getImpl(IEventoDAO.class);
	}

	public void testAtualizarQtdVagasLivres() {
		try {
			assertEquals( 1, daoEvento.atualizar(02L, 4) );
		} catch(SQLException sqlErr) {
			System.err.println(sqlErr.getCause());
			assertFalse(true);
		} catch(Exception err) {
			System.err.println(err.getCause());
			assertFalse(true);
		}
	}
	
	public void testObterEventosEmCartaz() {
		try {
			String dataInicio  = Util.gerarDataNoFormatoString(25, 10, 2006);
			String dataTermino = Util.gerarDataNoFormatoString(28, 10, 2006);
			//
			Collection<Evento> eventos = new ArrayList<Evento>();

			eventos = daoEvento.obterEventosEmCartaz(dataInicio, dataTermino,
					true);

			System.out.println("\t Eventos: " + eventos);
			assertNotNull(eventos);
		} catch(SQLException sqlErr) {
			System.err.println(sqlErr.getCause());
			sqlErr.getLocalizedMessage();
			assertFalse(true);
		} catch(Exception err) {
			System.err.println(err.getCause());
			assertFalse(true);
		}
	}

	protected void tearDown() throws Exception {
		super.tearDown();
		daoEvento = null;
	}
}